// Code generated by protoc-gen-go. DO NOT EDIT.
// source: egts_sr_egtsplus_data.proto

/*
Package nv is a generated protocol buffer package.

It is generated from these files:
	egts_sr_egtsplus_data.proto

It has these top-level messages:
	StorageRecord
	SensAccelerometerData
	SensAinAinValue
	SensBufferData
	SensButtonPressCounter
	SensCanLogData
	ToProtobufRec
	SensCounterCount
	SensCrashData
	SensDinsFlags
	SensDoutsFlags
	SensFmeterFrequency
	SensFuelLevel
	SensGsmCellMonotoringCellMonitoring
	SensNdNavData
	SensStorInfo
	SensTermoData
	SensTestEraTests
	SensTrackerInfo
*/
package egts

import "github.com/golang/protobuf/proto"
import "fmt"
import "math"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

type StorageRecordReason int32

const (
	StorageRecord_DEVICE_RESET           StorageRecordReason = 1
	StorageRecord_PROFILE_CHANGE         StorageRecordReason = 2
	StorageRecord_IGNITION_ON            StorageRecordReason = 3
	StorageRecord_IGNITION_OFF           StorageRecordReason = 4
	StorageRecord_TRIP_BEGIN             StorageRecordReason = 5
	StorageRecord_TRIP_END               StorageRecordReason = 6
	StorageRecord_STOP                   StorageRecordReason = 7
	StorageRecord_MOVE                   StorageRecordReason = 8
	StorageRecord_TOWING_BEGIN           StorageRecordReason = 9
	StorageRecord_TOWING_END             StorageRecordReason = 10
	StorageRecord_TIMER_MOVE             StorageRecordReason = 11
	StorageRecord_TIMER_STOP             StorageRecordReason = 12
	StorageRecord_ANGLE                  StorageRecordReason = 13
	StorageRecord_DISTANCE               StorageRecordReason = 14
	StorageRecord_SOS_BUTTON             StorageRecordReason = 15
	StorageRecord_SERVICE_BUTTON         StorageRecordReason = 16
	StorageRecord_TAMPER                 StorageRecordReason = 17
	StorageRecord_ANTENNA_SWITCH         StorageRecordReason = 18
	StorageRecord_GSM_LOST               StorageRecordReason = 19
	StorageRecord_GSM_RECONNECT          StorageRecordReason = 20
	StorageRecord_GNSS_LOST              StorageRecordReason = 21
	StorageRecord_GNSS_REAQUISITION      StorageRecordReason = 22
	StorageRecord_JAMMER_GSM             StorageRecordReason = 23
	StorageRecord_JAMMER_GNSS            StorageRecordReason = 24
	StorageRecord_OVER_SPEED             StorageRecordReason = 25
	StorageRecord_OVER_RPM               StorageRecordReason = 26
	StorageRecord_OVER_TEMPERATURE       StorageRecordReason = 27
	StorageRecord_DANGEROUS_DRIVING      StorageRecordReason = 28
	StorageRecord_ACCIDENT               StorageRecordReason = 29
	StorageRecord_OVERTHROW              StorageRecordReason = 30
	StorageRecord_ON_BATTERY             StorageRecordReason = 31
	StorageRecord_BATTERY_DISCHARGE      StorageRecordReason = 32
	StorageRecord_RADIO_TAG_REG          StorageRecordReason = 33
	StorageRecord_RADIO_TAG_UNREG        StorageRecordReason = 34
	StorageRecord_MOVE_WITHOUT_RADIO_TAG StorageRecordReason = 35
	StorageRecord_ECU_ERROR_CODE         StorageRecordReason = 36
	StorageRecord_EXTERNAL_REQUEST       StorageRecordReason = 37
	StorageRecord_DEVICE_TEST            StorageRecordReason = 38
	StorageRecord_OTHER_REASON           StorageRecordReason = 99
)

var StorageRecordReason_name = map[int32]string{
	1:  "DEVICE_RESET",
	2:  "PROFILE_CHANGE",
	3:  "IGNITION_ON",
	4:  "IGNITION_OFF",
	5:  "TRIP_BEGIN",
	6:  "TRIP_END",
	7:  "STOP",
	8:  "MOVE",
	9:  "TOWING_BEGIN",
	10: "TOWING_END",
	11: "TIMER_MOVE",
	12: "TIMER_STOP",
	13: "ANGLE",
	14: "DISTANCE",
	15: "SOS_BUTTON",
	16: "SERVICE_BUTTON",
	17: "TAMPER",
	18: "ANTENNA_SWITCH",
	19: "GSM_LOST",
	20: "GSM_RECONNECT",
	21: "GNSS_LOST",
	22: "GNSS_REAQUISITION",
	23: "JAMMER_GSM",
	24: "JAMMER_GNSS",
	25: "OVER_SPEED",
	26: "OVER_RPM",
	27: "OVER_TEMPERATURE",
	28: "DANGEROUS_DRIVING",
	29: "ACCIDENT",
	30: "OVERTHROW",
	31: "ON_BATTERY",
	32: "BATTERY_DISCHARGE",
	33: "RADIO_TAG_REG",
	34: "RADIO_TAG_UNREG",
	35: "MOVE_WITHOUT_RADIO_TAG",
	36: "ECU_ERROR_CODE",
	37: "EXTERNAL_REQUEST",
	38: "DEVICE_TEST",
	99: "OTHER_REASON",
}
var StorageRecordReason_value = map[string]int32{
	"DEVICE_RESET":           1,
	"PROFILE_CHANGE":         2,
	"IGNITION_ON":            3,
	"IGNITION_OFF":           4,
	"TRIP_BEGIN":             5,
	"TRIP_END":               6,
	"STOP":                   7,
	"MOVE":                   8,
	"TOWING_BEGIN":           9,
	"TOWING_END":             10,
	"TIMER_MOVE":             11,
	"TIMER_STOP":             12,
	"ANGLE":                  13,
	"DISTANCE":               14,
	"SOS_BUTTON":             15,
	"SERVICE_BUTTON":         16,
	"TAMPER":                 17,
	"ANTENNA_SWITCH":         18,
	"GSM_LOST":               19,
	"GSM_RECONNECT":          20,
	"GNSS_LOST":              21,
	"GNSS_REAQUISITION":      22,
	"JAMMER_GSM":             23,
	"JAMMER_GNSS":            24,
	"OVER_SPEED":             25,
	"OVER_RPM":               26,
	"OVER_TEMPERATURE":       27,
	"DANGEROUS_DRIVING":      28,
	"ACCIDENT":               29,
	"OVERTHROW":              30,
	"ON_BATTERY":             31,
	"BATTERY_DISCHARGE":      32,
	"RADIO_TAG_REG":          33,
	"RADIO_TAG_UNREG":        34,
	"MOVE_WITHOUT_RADIO_TAG": 35,
	"ECU_ERROR_CODE":         36,
	"EXTERNAL_REQUEST":       37,
	"DEVICE_TEST":            38,
	"OTHER_REASON":           99,
}

func (x StorageRecordReason) Enum() *StorageRecordReason {
	p := new(StorageRecordReason)
	*p = x
	return p
}
func (x StorageRecordReason) String() string {
	return proto.EnumName(StorageRecordReason_name, int32(x))
}
func (x *StorageRecordReason) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(StorageRecordReason_value, data, "StorageRecordReason")
	if err != nil {
		return err
	}
	*x = StorageRecordReason(value)
	return nil
}
func (StorageRecordReason) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }

type StorageRecord struct {
	// Номер записи
	RecordNumber *uint32 `protobuf:"varint,1,req,name=record_number,json=recordNumber" json:"record_number,omitempty"`
	// Время отметки
	TimeStamp *uint32 `protobuf:"fixed32,2,req,name=time_stamp,json=timeStamp" json:"time_stamp,omitempty"`
	// Причина формирования отметки (см. enum reason)
	RecordReason []StorageRecordReason `protobuf:"varint,3,rep,name=record_reason,json=recordReason,enum=nv.StorageRecordReason" json:"record_reason,omitempty"`
	// Статусные флаги
	StatusFlags *uint32 `protobuf:"fixed32,4,req,name=status_flags,json=statusFlags" json:"status_flags,omitempty"`
	// Датчик ускорения
	SensAccelerometerData []*SensAccelerometerData `protobuf:"bytes,18,rep,name=sens_accelerometer_data,json=sensAccelerometerData" json:"sens_accelerometer_data,omitempty"`
	// Аналоговый вход
	SensAinAinValue []*SensAinAinValue `protobuf:"bytes,9,rep,name=sens_ain_ain_value,json=sensAinAinValue" json:"sens_ain_ain_value,omitempty"`
	// Буферизованные данные
	SensBufferData []*SensBufferData `protobuf:"bytes,20,rep,name=sens_buffer_data,json=sensBufferData" json:"sens_buffer_data,omitempty"`
	// Кнопка
	SensButtonPressCounter []*SensButtonPressCounter `protobuf:"bytes,14,rep,name=sens_button_press_counter,json=sensButtonPressCounter" json:"sens_button_press_counter,omitempty"`
	// CANLog
	SensCanLogData []*SensCanLogData `protobuf:"bytes,16,rep,name=sens_can_log_data,json=sensCanLogData" json:"sens_can_log_data,omitempty"`
	// Расширение CANLog
	SensCanLogTmpDataExt []*SensCanLogTmpDataExt `protobuf:"bytes,17,rep,name=sens_can_log_tmp_data_ext,json=sensCanLogTmpDataExt" json:"sens_can_log_tmp_data_ext,omitempty"`
	// Счётчик
	SensCounterCount []*SensCounterCount `protobuf:"bytes,11,rep,name=sens_counter_count,json=sensCounterCount" json:"sens_counter_count,omitempty"`
	// Датчик аварии
	SensCrashData []*SensCrashData `protobuf:"bytes,24,rep,name=sens_crash_data,json=sensCrashData" json:"sens_crash_data,omitempty"`
	// Цифровые входы
	SensDinsFlags []*SensDinsFlags `protobuf:"bytes,10,rep,name=sens_dins_flags,json=sensDinsFlags" json:"sens_dins_flags,omitempty"`
	// Цифровые выходы
	SensDoutsFlags []*SensDoutsFlags `protobuf:"bytes,19,rep,name=sens_douts_flags,json=sensDoutsFlags" json:"sens_douts_flags,omitempty"`
	// Частотомер
	SensFmeterFrequency []*SensFmeterFrequency `protobuf:"bytes,12,rep,name=sens_fmeter_frequency,json=sensFmeterFrequency" json:"sens_fmeter_frequency,omitempty"`
	// Датчик топлива
	SensFuelLevel []*SensFuelLevel `protobuf:"bytes,8,rep,name=sens_fuel_level,json=sensFuelLevel" json:"sens_fuel_level,omitempty"`
	// Информация о базовых станциях GSM
	SensGsmCellMonotoringCellMonitoring []*SensGsmCellMonotoringCellMonitoring `protobuf:"bytes,13,rep,name=sens_gsm_cell_monotoring_cell_monitoring,json=sensGsmCellMonotoringCellMonitoring" json:"sens_gsm_cell_monotoring_cell_monitoring,omitempty"`
	// Навигационные данные
	SensNdNavData []*SensNdNavData `protobuf:"bytes,7,rep,name=sens_nd_nav_data,json=sensNdNavData" json:"sens_nd_nav_data,omitempty"`
	// Статистика хранилище навигационных данных
	SensStorInfo []*SensStorInfo `protobuf:"bytes,21,rep,name=sens_stor_info,json=sensStorInfo" json:"sens_stor_info,omitempty"`
	// Датчик температуры
	SensTermoData []*SensTermoData `protobuf:"bytes,15,rep,name=sens_termo_data,json=sensTermoData" json:"sens_termo_data,omitempty"`
	// Тестовые данные ЭРА ГЛОНАСС
	SensTestEraTests []*SensTestEraTests `protobuf:"bytes,23,rep,name=sens_test_era_tests,json=sensTestEraTests" json:"sens_test_era_tests,omitempty"`
	// Статистика трэкера
	SensTrackerInfo  []*SensTrackerInfo `protobuf:"bytes,22,rep,name=sens_tracker_info,json=sensTrackerInfo" json:"sens_tracker_info,omitempty"`
	XXX_unrecognized []byte             `json:"-"`
}

func (m *StorageRecord) Decode(content []byte) error {
	return proto.Unmarshal(content, m)
}

func (m *StorageRecord) Encode() ([]byte, error) {
	return proto.Marshal(m)
}

func (m *StorageRecord) Length() uint16 {
	var result uint16

	if recBytes, err := m.Encode(); err != nil {
		result = uint16(0)
	} else {
		result = uint16(len(recBytes))
	}

	return result
}

func (m *StorageRecord) Reset()                    { *m = StorageRecord{} }
func (m *StorageRecord) String() string            { return proto.CompactTextString(m) }
func (*StorageRecord) ProtoMessage()               {}
func (*StorageRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

func (m *StorageRecord) GetRecordNumber() uint32 {
	if m != nil && m.RecordNumber != nil {
		return *m.RecordNumber
	}
	return 0
}

func (m *StorageRecord) GetTimeStamp() uint32 {
	if m != nil && m.TimeStamp != nil {
		return *m.TimeStamp
	}
	return 0
}

func (m *StorageRecord) GetRecordReason() []StorageRecordReason {
	if m != nil {
		return m.RecordReason
	}
	return nil
}

func (m *StorageRecord) GetStatusFlags() uint32 {
	if m != nil && m.StatusFlags != nil {
		return *m.StatusFlags
	}
	return 0
}

func (m *StorageRecord) GetSensAccelerometerData() []*SensAccelerometerData {
	if m != nil {
		return m.SensAccelerometerData
	}
	return nil
}

func (m *StorageRecord) GetSensAinAinValue() []*SensAinAinValue {
	if m != nil {
		return m.SensAinAinValue
	}
	return nil
}

func (m *StorageRecord) GetSensBufferData() []*SensBufferData {
	if m != nil {
		return m.SensBufferData
	}
	return nil
}

func (m *StorageRecord) GetSensButtonPressCounter() []*SensButtonPressCounter {
	if m != nil {
		return m.SensButtonPressCounter
	}
	return nil
}

func (m *StorageRecord) GetSensCanLogData() []*SensCanLogData {
	if m != nil {
		return m.SensCanLogData
	}
	return nil
}

func (m *StorageRecord) GetSensCanLogTmpDataExt() []*SensCanLogTmpDataExt {
	if m != nil {
		return m.SensCanLogTmpDataExt
	}
	return nil
}

func (m *StorageRecord) GetSensCounterCount() []*SensCounterCount {
	if m != nil {
		return m.SensCounterCount
	}
	return nil
}

func (m *StorageRecord) GetSensCrashData() []*SensCrashData {
	if m != nil {
		return m.SensCrashData
	}
	return nil
}

func (m *StorageRecord) GetSensDinsFlags() []*SensDinsFlags {
	if m != nil {
		return m.SensDinsFlags
	}
	return nil
}

func (m *StorageRecord) GetSensDoutsFlags() []*SensDoutsFlags {
	if m != nil {
		return m.SensDoutsFlags
	}
	return nil
}

func (m *StorageRecord) GetSensFmeterFrequency() []*SensFmeterFrequency {
	if m != nil {
		return m.SensFmeterFrequency
	}
	return nil
}

func (m *StorageRecord) GetSensFuelLevel() []*SensFuelLevel {
	if m != nil {
		return m.SensFuelLevel
	}
	return nil
}

func (m *StorageRecord) GetSensGsmCellMonotoringCellMonitoring() []*SensGsmCellMonotoringCellMonitoring {
	if m != nil {
		return m.SensGsmCellMonotoringCellMonitoring
	}
	return nil
}

func (m *StorageRecord) GetSensNdNavData() []*SensNdNavData {
	if m != nil {
		return m.SensNdNavData
	}
	return nil
}

func (m *StorageRecord) GetSensStorInfo() []*SensStorInfo {
	if m != nil {
		return m.SensStorInfo
	}
	return nil
}

func (m *StorageRecord) GetSensTermoData() []*SensTermoData {
	if m != nil {
		return m.SensTermoData
	}
	return nil
}

func (m *StorageRecord) GetSensTestEraTests() []*SensTestEraTests {
	if m != nil {
		return m.SensTestEraTests
	}
	return nil
}

func (m *StorageRecord) GetSensTrackerInfo() []*SensTrackerInfo {
	if m != nil {
		return m.SensTrackerInfo
	}
	return nil
}

// Датчик ускорения
type SensAccelerometerData struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Buf              []byte  `protobuf:"bytes,2,opt,name=buf" json:"buf,omitempty"`
	Atm              *uint32 `protobuf:"varint,3,opt,name=atm" json:"atm,omitempty"`
	Frequency        *uint32 `protobuf:"varint,4,opt,name=frequency" json:"frequency,omitempty"`
	Range            *uint32 `protobuf:"varint,5,opt,name=range" json:"range,omitempty"`
	Format           *uint32 `protobuf:"varint,6,opt,name=format" json:"format,omitempty"`
	Zlib             *uint32 `protobuf:"varint,7,opt,name=zlib" json:"zlib,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensAccelerometerData) Reset()                    { *m = SensAccelerometerData{} }
func (m *SensAccelerometerData) String() string            { return proto.CompactTextString(m) }
func (*SensAccelerometerData) ProtoMessage()               {}
func (*SensAccelerometerData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

func (m *SensAccelerometerData) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensAccelerometerData) GetBuf() []byte {
	if m != nil {
		return m.Buf
	}
	return nil
}

func (m *SensAccelerometerData) GetAtm() uint32 {
	if m != nil && m.Atm != nil {
		return *m.Atm
	}
	return 0
}

func (m *SensAccelerometerData) GetFrequency() uint32 {
	if m != nil && m.Frequency != nil {
		return *m.Frequency
	}
	return 0
}

func (m *SensAccelerometerData) GetRange() uint32 {
	if m != nil && m.Range != nil {
		return *m.Range
	}
	return 0
}

func (m *SensAccelerometerData) GetFormat() uint32 {
	if m != nil && m.Format != nil {
		return *m.Format
	}
	return 0
}

func (m *SensAccelerometerData) GetZlib() uint32 {
	if m != nil && m.Zlib != nil {
		return *m.Zlib
	}
	return 0
}

// Аналоговый вход
type SensAinAinValue struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Mv               *uint32 `protobuf:"varint,2,opt,name=mv" json:"mv,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensAinAinValue) Reset()                    { *m = SensAinAinValue{} }
func (m *SensAinAinValue) String() string            { return proto.CompactTextString(m) }
func (*SensAinAinValue) ProtoMessage()               {}
func (*SensAinAinValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *SensAinAinValue) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensAinAinValue) GetMv() uint32 {
	if m != nil && m.Mv != nil {
		return *m.Mv
	}
	return 0
}

// Буферизованные данные
type SensBufferData struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Data             []byte  `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
	IsPacked         *bool   `protobuf:"varint,3,opt,name=is_packed,json=isPacked" json:"is_packed,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensBufferData) Reset()                    { *m = SensBufferData{} }
func (m *SensBufferData) String() string            { return proto.CompactTextString(m) }
func (*SensBufferData) ProtoMessage()               {}
func (*SensBufferData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *SensBufferData) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensBufferData) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *SensBufferData) GetIsPacked() bool {
	if m != nil && m.IsPacked != nil {
		return *m.IsPacked
	}
	return false
}

// Кнопка
type SensButtonPressCounter struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	State            *bool   `protobuf:"varint,2,opt,name=state" json:"state,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensButtonPressCounter) Reset()                    { *m = SensButtonPressCounter{} }
func (m *SensButtonPressCounter) String() string            { return proto.CompactTextString(m) }
func (*SensButtonPressCounter) ProtoMessage()               {}
func (*SensButtonPressCounter) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *SensButtonPressCounter) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensButtonPressCounter) GetState() bool {
	if m != nil && m.State != nil {
		return *m.State
	}
	return false
}

// CANLog
type SensCanLogData struct {
	SensNum            *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	FlagSecurityState  *uint32 `protobuf:"varint,2,opt,name=flag_security_state,json=flagSecurityState" json:"flag_security_state,omitempty"`
	FlagAlarm          *uint32 `protobuf:"varint,3,opt,name=flag_alarm,json=flagAlarm" json:"flag_alarm,omitempty"`
	EngineTimeAll      *uint32 `protobuf:"varint,4,opt,name=engine_time_all,json=engineTimeAll" json:"engine_time_all,omitempty"`
	EngineTurnSpeed    *uint32 `protobuf:"varint,5,opt,name=engine_turn_speed,json=engineTurnSpeed" json:"engine_turn_speed,omitempty"`
	EngineTemperature  *int32  `protobuf:"zigzag32,6,opt,name=engine_temperature,json=engineTemperature" json:"engine_temperature,omitempty"`
	FuelConsumptionAll *uint32 `protobuf:"varint,7,opt,name=fuel_consumption_all,json=fuelConsumptionAll" json:"fuel_consumption_all,omitempty"`
	FuelLevel          *uint32 `protobuf:"varint,8,opt,name=fuel_level,json=fuelLevel" json:"fuel_level,omitempty"`
	TrackAll           *uint32 `protobuf:"varint,9,opt,name=track_all,json=trackAll" json:"track_all,omitempty"`
	Speed              *uint32 `protobuf:"varint,10,opt,name=speed" json:"speed,omitempty"`
	PressureAxis_1     *uint32 `protobuf:"varint,11,opt,name=pressure_axis_1,json=pressureAxis1" json:"pressure_axis_1,omitempty"`
	PressureAxis_2     *uint32 `protobuf:"varint,12,opt,name=pressure_axis_2,json=pressureAxis2" json:"pressure_axis_2,omitempty"`
	PressureAxis_3     *uint32 `protobuf:"varint,13,opt,name=pressure_axis_3,json=pressureAxis3" json:"pressure_axis_3,omitempty"`
	PressureAxis_4     *uint32 `protobuf:"varint,14,opt,name=pressure_axis_4,json=pressureAxis4" json:"pressure_axis_4,omitempty"`
	PressureAxis_5     *uint32 `protobuf:"varint,15,opt,name=pressure_axis_5,json=pressureAxis5" json:"pressure_axis_5,omitempty"`
	XXX_unrecognized   []byte  `json:"-"`
}

func (m *SensCanLogData) Reset()                    { *m = SensCanLogData{} }
func (m *SensCanLogData) String() string            { return proto.CompactTextString(m) }
func (*SensCanLogData) ProtoMessage()               {}
func (*SensCanLogData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *SensCanLogData) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensCanLogData) GetFlagSecurityState() uint32 {
	if m != nil && m.FlagSecurityState != nil {
		return *m.FlagSecurityState
	}
	return 0
}

func (m *SensCanLogData) GetFlagAlarm() uint32 {
	if m != nil && m.FlagAlarm != nil {
		return *m.FlagAlarm
	}
	return 0
}

func (m *SensCanLogData) GetEngineTimeAll() uint32 {
	if m != nil && m.EngineTimeAll != nil {
		return *m.EngineTimeAll
	}
	return 0
}

func (m *SensCanLogData) GetEngineTurnSpeed() uint32 {
	if m != nil && m.EngineTurnSpeed != nil {
		return *m.EngineTurnSpeed
	}
	return 0
}

func (m *SensCanLogData) GetEngineTemperature() int32 {
	if m != nil && m.EngineTemperature != nil {
		return *m.EngineTemperature
	}
	return 0
}

func (m *SensCanLogData) GetFuelConsumptionAll() uint32 {
	if m != nil && m.FuelConsumptionAll != nil {
		return *m.FuelConsumptionAll
	}
	return 0
}

func (m *SensCanLogData) GetFuelLevel() uint32 {
	if m != nil && m.FuelLevel != nil {
		return *m.FuelLevel
	}
	return 0
}

func (m *SensCanLogData) GetTrackAll() uint32 {
	if m != nil && m.TrackAll != nil {
		return *m.TrackAll
	}
	return 0
}

func (m *SensCanLogData) GetSpeed() uint32 {
	if m != nil && m.Speed != nil {
		return *m.Speed
	}
	return 0
}

func (m *SensCanLogData) GetPressureAxis_1() uint32 {
	if m != nil && m.PressureAxis_1 != nil {
		return *m.PressureAxis_1
	}
	return 0
}

func (m *SensCanLogData) GetPressureAxis_2() uint32 {
	if m != nil && m.PressureAxis_2 != nil {
		return *m.PressureAxis_2
	}
	return 0
}

func (m *SensCanLogData) GetPressureAxis_3() uint32 {
	if m != nil && m.PressureAxis_3 != nil {
		return *m.PressureAxis_3
	}
	return 0
}

func (m *SensCanLogData) GetPressureAxis_4() uint32 {
	if m != nil && m.PressureAxis_4 != nil {
		return *m.PressureAxis_4
	}
	return 0
}

func (m *SensCanLogData) GetPressureAxis_5() uint32 {
	if m != nil && m.PressureAxis_5 != nil {
		return *m.PressureAxis_5
	}
	return 0
}

// Расширение CANLog
type SensCanLogTmpDataExt struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	FlagsHigh        *uint32 `protobuf:"varint,2,opt,name=flags_high,json=flagsHigh" json:"flags_high,omitempty"`
	FlagsLow         *uint32 `protobuf:"varint,3,opt,name=flags_low,json=flagsLow" json:"flags_low,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensCanLogTmpDataExt) Reset()                    { *m = SensCanLogTmpDataExt{} }
func (m *SensCanLogTmpDataExt) String() string            { return proto.CompactTextString(m) }
func (*SensCanLogTmpDataExt) ProtoMessage()               {}
func (*SensCanLogTmpDataExt) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

func (m *SensCanLogTmpDataExt) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensCanLogTmpDataExt) GetFlagsHigh() uint32 {
	if m != nil && m.FlagsHigh != nil {
		return *m.FlagsHigh
	}
	return 0
}

func (m *SensCanLogTmpDataExt) GetFlagsLow() uint32 {
	if m != nil && m.FlagsLow != nil {
		return *m.FlagsLow
	}
	return 0
}

// Счётчик
type SensCounterCount struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Value            *uint32 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensCounterCount) Reset()                    { *m = SensCounterCount{} }
func (m *SensCounterCount) String() string            { return proto.CompactTextString(m) }
func (*SensCounterCount) ProtoMessage()               {}
func (*SensCounterCount) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

func (m *SensCounterCount) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensCounterCount) GetValue() uint32 {
	if m != nil && m.Value != nil {
		return *m.Value
	}
	return 0
}

// Датчик аварии
type SensCrashData struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Energy           *uint32 `protobuf:"varint,2,opt,name=energy" json:"energy,omitempty"`
	IsOverturned     *bool   `protobuf:"varint,3,opt,name=is_overturned,json=isOverturned" json:"is_overturned,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensCrashData) Reset()                    { *m = SensCrashData{} }
func (m *SensCrashData) String() string            { return proto.CompactTextString(m) }
func (*SensCrashData) ProtoMessage()               {}
func (*SensCrashData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

func (m *SensCrashData) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensCrashData) GetEnergy() uint32 {
	if m != nil && m.Energy != nil {
		return *m.Energy
	}
	return 0
}

func (m *SensCrashData) GetIsOverturned() bool {
	if m != nil && m.IsOverturned != nil {
		return *m.IsOverturned
	}
	return false
}

// Цифровые входы
type SensDinsFlags struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Device           *uint32 `protobuf:"varint,2,opt,name=device" json:"device,omitempty"`
	External         *uint32 `protobuf:"varint,3,opt,name=external" json:"external,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensDinsFlags) Reset()                    { *m = SensDinsFlags{} }
func (m *SensDinsFlags) String() string            { return proto.CompactTextString(m) }
func (*SensDinsFlags) ProtoMessage()               {}
func (*SensDinsFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }

func (m *SensDinsFlags) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensDinsFlags) GetDevice() uint32 {
	if m != nil && m.Device != nil {
		return *m.Device
	}
	return 0
}

func (m *SensDinsFlags) GetExternal() uint32 {
	if m != nil && m.External != nil {
		return *m.External
	}
	return 0
}

// Цифровые выходы
type SensDoutsFlags struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Device           *uint32 `protobuf:"varint,2,opt,name=device" json:"device,omitempty"`
	External         *uint32 `protobuf:"varint,3,opt,name=external" json:"external,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensDoutsFlags) Reset()                    { *m = SensDoutsFlags{} }
func (m *SensDoutsFlags) String() string            { return proto.CompactTextString(m) }
func (*SensDoutsFlags) ProtoMessage()               {}
func (*SensDoutsFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }

func (m *SensDoutsFlags) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensDoutsFlags) GetDevice() uint32 {
	if m != nil && m.Device != nil {
		return *m.Device
	}
	return 0
}

func (m *SensDoutsFlags) GetExternal() uint32 {
	if m != nil && m.External != nil {
		return *m.External
	}
	return 0
}

// Частотомер
type SensFmeterFrequency struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Value            *uint32 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensFmeterFrequency) Reset()                    { *m = SensFmeterFrequency{} }
func (m *SensFmeterFrequency) String() string            { return proto.CompactTextString(m) }
func (*SensFmeterFrequency) ProtoMessage()               {}
func (*SensFmeterFrequency) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }

func (m *SensFmeterFrequency) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensFmeterFrequency) GetValue() uint32 {
	if m != nil && m.Value != nil {
		return *m.Value
	}
	return 0
}

// Датчик топлива
type SensFuelLevel struct {
	SensNum          *uint32  `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Value            *float32 `protobuf:"fixed32,2,opt,name=value" json:"value,omitempty"`
	Parrots          *uint32  `protobuf:"varint,3,opt,name=parrots" json:"parrots,omitempty"`
	Unit             *uint32  `protobuf:"varint,4,opt,name=unit" json:"unit,omitempty"`
	T                *uint32  `protobuf:"varint,5,opt,name=t" json:"t,omitempty"`
	Status           *uint32  `protobuf:"varint,6,opt,name=status" json:"status,omitempty"`
	XXX_unrecognized []byte   `json:"-"`
}

func (m *SensFuelLevel) Reset()                    { *m = SensFuelLevel{} }
func (m *SensFuelLevel) String() string            { return proto.CompactTextString(m) }
func (*SensFuelLevel) ProtoMessage()               {}
func (*SensFuelLevel) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }

func (m *SensFuelLevel) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensFuelLevel) GetValue() float32 {
	if m != nil && m.Value != nil {
		return *m.Value
	}
	return 0
}

func (m *SensFuelLevel) GetParrots() uint32 {
	if m != nil && m.Parrots != nil {
		return *m.Parrots
	}
	return 0
}

func (m *SensFuelLevel) GetUnit() uint32 {
	if m != nil && m.Unit != nil {
		return *m.Unit
	}
	return 0
}

func (m *SensFuelLevel) GetT() uint32 {
	if m != nil && m.T != nil {
		return *m.T
	}
	return 0
}

func (m *SensFuelLevel) GetStatus() uint32 {
	if m != nil && m.Status != nil {
		return *m.Status
	}
	return 0
}

// Информация о базовых станциях GSM
type SensGsmCellMonotoringCellMonitoring struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Lac              []byte  `protobuf:"bytes,4,opt,name=lac" json:"lac,omitempty"`
	Cid              []byte  `protobuf:"bytes,5,opt,name=cid" json:"cid,omitempty"`
	Rssi             []byte  `protobuf:"bytes,6,opt,name=rssi" json:"rssi,omitempty"`
	TimeAdv          []byte  `protobuf:"bytes,7,opt,name=time_adv,json=timeAdv" json:"time_adv,omitempty"`
	Mcc              *uint32 `protobuf:"varint,2,opt,name=mcc" json:"mcc,omitempty"`
	Mnc              *uint32 `protobuf:"varint,3,opt,name=mnc" json:"mnc,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensGsmCellMonotoringCellMonitoring) Reset()         { *m = SensGsmCellMonotoringCellMonitoring{} }
func (m *SensGsmCellMonotoringCellMonitoring) String() string { return proto.CompactTextString(m) }
func (*SensGsmCellMonotoringCellMonitoring) ProtoMessage()    {}
func (*SensGsmCellMonotoringCellMonitoring) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{13}
}

func (m *SensGsmCellMonotoringCellMonitoring) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensGsmCellMonotoringCellMonitoring) GetLac() []byte {
	if m != nil {
		return m.Lac
	}
	return nil
}

func (m *SensGsmCellMonotoringCellMonitoring) GetCid() []byte {
	if m != nil {
		return m.Cid
	}
	return nil
}

func (m *SensGsmCellMonotoringCellMonitoring) GetRssi() []byte {
	if m != nil {
		return m.Rssi
	}
	return nil
}

func (m *SensGsmCellMonotoringCellMonitoring) GetTimeAdv() []byte {
	if m != nil {
		return m.TimeAdv
	}
	return nil
}

func (m *SensGsmCellMonotoringCellMonitoring) GetMcc() uint32 {
	if m != nil && m.Mcc != nil {
		return *m.Mcc
	}
	return 0
}

func (m *SensGsmCellMonotoringCellMonitoring) GetMnc() uint32 {
	if m != nil && m.Mnc != nil {
		return *m.Mnc
	}
	return 0
}

// Навигационные данные
type SensNdNavData struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Longitude        *int32  `protobuf:"fixed32,2,opt,name=longitude" json:"longitude,omitempty"`
	Latitude         *int32  `protobuf:"fixed32,3,opt,name=latitude" json:"latitude,omitempty"`
	Altitude         *uint32 `protobuf:"varint,4,opt,name=altitude" json:"altitude,omitempty"`
	Speed            *uint32 `protobuf:"varint,5,opt,name=speed" json:"speed,omitempty"`
	Course           *uint32 `protobuf:"varint,6,opt,name=course" json:"course,omitempty"`
	SatCount         *uint32 `protobuf:"varint,7,opt,name=sat_count,json=satCount" json:"sat_count,omitempty"`
	Pdop             *uint32 `protobuf:"varint,8,opt,name=pdop" json:"pdop,omitempty"`
	Track            *uint32 `protobuf:"varint,9,opt,name=track" json:"track,omitempty"`
	Odometer         *uint32 `protobuf:"varint,10,opt,name=odometer" json:"odometer,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensNdNavData) Reset()                    { *m = SensNdNavData{} }
func (m *SensNdNavData) String() string            { return proto.CompactTextString(m) }
func (*SensNdNavData) ProtoMessage()               {}
func (*SensNdNavData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }

func (m *SensNdNavData) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensNdNavData) GetLongitude() int32 {
	if m != nil && m.Longitude != nil {
		return *m.Longitude
	}
	return 0
}

func (m *SensNdNavData) GetLatitude() int32 {
	if m != nil && m.Latitude != nil {
		return *m.Latitude
	}
	return 0
}

func (m *SensNdNavData) GetAltitude() uint32 {
	if m != nil && m.Altitude != nil {
		return *m.Altitude
	}
	return 0
}

func (m *SensNdNavData) GetSpeed() uint32 {
	if m != nil && m.Speed != nil {
		return *m.Speed
	}
	return 0
}

func (m *SensNdNavData) GetCourse() uint32 {
	if m != nil && m.Course != nil {
		return *m.Course
	}
	return 0
}

func (m *SensNdNavData) GetSatCount() uint32 {
	if m != nil && m.SatCount != nil {
		return *m.SatCount
	}
	return 0
}

func (m *SensNdNavData) GetPdop() uint32 {
	if m != nil && m.Pdop != nil {
		return *m.Pdop
	}
	return 0
}

func (m *SensNdNavData) GetTrack() uint32 {
	if m != nil && m.Track != nil {
		return *m.Track
	}
	return 0
}

func (m *SensNdNavData) GetOdometer() uint32 {
	if m != nil && m.Odometer != nil {
		return *m.Odometer
	}
	return 0
}

// Статистика хранилище навигационных данных
type SensStorInfo struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	IdMax            *uint32 `protobuf:"varint,2,opt,name=id_max,json=idMax" json:"id_max,omitempty"`
	IdMin            *uint32 `protobuf:"varint,3,opt,name=id_min,json=idMin" json:"id_min,omitempty"`
	TmOldest         *uint32 `protobuf:"varint,4,opt,name=tm_oldest,json=tmOldest" json:"tm_oldest,omitempty"`
	TmOldestUnack    *uint32 `protobuf:"varint,5,opt,name=tm_oldest_unack,json=tmOldestUnack" json:"tm_oldest_unack,omitempty"`
	CntUnack         *uint32 `protobuf:"varint,6,opt,name=cnt_unack,json=cntUnack" json:"cnt_unack,omitempty"`
	CntUnackLosted   *uint32 `protobuf:"varint,7,opt,name=cnt_unack_losted,json=cntUnackLosted" json:"cnt_unack_losted,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensStorInfo) Reset()                    { *m = SensStorInfo{} }
func (m *SensStorInfo) String() string            { return proto.CompactTextString(m) }
func (*SensStorInfo) ProtoMessage()               {}
func (*SensStorInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }

func (m *SensStorInfo) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensStorInfo) GetIdMax() uint32 {
	if m != nil && m.IdMax != nil {
		return *m.IdMax
	}
	return 0
}

func (m *SensStorInfo) GetIdMin() uint32 {
	if m != nil && m.IdMin != nil {
		return *m.IdMin
	}
	return 0
}

func (m *SensStorInfo) GetTmOldest() uint32 {
	if m != nil && m.TmOldest != nil {
		return *m.TmOldest
	}
	return 0
}

func (m *SensStorInfo) GetTmOldestUnack() uint32 {
	if m != nil && m.TmOldestUnack != nil {
		return *m.TmOldestUnack
	}
	return 0
}

func (m *SensStorInfo) GetCntUnack() uint32 {
	if m != nil && m.CntUnack != nil {
		return *m.CntUnack
	}
	return 0
}

func (m *SensStorInfo) GetCntUnackLosted() uint32 {
	if m != nil && m.CntUnackLosted != nil {
		return *m.CntUnackLosted
	}
	return 0
}

// Датчик температуры
type SensTermoData struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	Status           *uint32 `protobuf:"varint,2,opt,name=status" json:"status,omitempty"`
	Temperature      *int32  `protobuf:"zigzag32,3,opt,name=temperature" json:"temperature,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensTermoData) Reset()                    { *m = SensTermoData{} }
func (m *SensTermoData) String() string            { return proto.CompactTextString(m) }
func (*SensTermoData) ProtoMessage()               {}
func (*SensTermoData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }

func (m *SensTermoData) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensTermoData) GetStatus() uint32 {
	if m != nil && m.Status != nil {
		return *m.Status
	}
	return 0
}

func (m *SensTermoData) GetTemperature() int32 {
	if m != nil && m.Temperature != nil {
		return *m.Temperature
	}
	return 0
}

// Тестовые данные ЭРА ГЛОНАСС
type SensTestEraTests struct {
	SensNum              *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	MicConFailure        *bool   `protobuf:"varint,2,opt,name=mic_con_failure,json=micConFailure" json:"mic_con_failure,omitempty"`
	MicFailure           *bool   `protobuf:"varint,3,opt,name=mic_failure,json=micFailure" json:"mic_failure,omitempty"`
	IgnitionFailure      *bool   `protobuf:"varint,4,opt,name=ignition_failure,json=ignitionFailure" json:"ignition_failure,omitempty"`
	UimFailure           *bool   `protobuf:"varint,5,opt,name=uim_failure,json=uimFailure" json:"uim_failure,omitempty"`
	BatFailure           *bool   `protobuf:"varint,6,opt,name=bat_failure,json=batFailure" json:"bat_failure,omitempty"`
	BatVoltLow           *bool   `protobuf:"varint,7,opt,name=bat_volt_low,json=batVoltLow" json:"bat_volt_low,omitempty"`
	CrashSensFailure     *bool   `protobuf:"varint,8,opt,name=crash_sens_failure,json=crashSensFailure" json:"crash_sens_failure,omitempty"`
	RaimProblem          *bool   `protobuf:"varint,9,opt,name=raim_problem,json=raimProblem" json:"raim_problem,omitempty"`
	GnssAntennaFailure   *bool   `protobuf:"varint,10,opt,name=gnss_antenna_failure,json=gnssAntennaFailure" json:"gnss_antenna_failure,omitempty"`
	EventsMemoryOverflow *bool   `protobuf:"varint,11,opt,name=events_memory_overflow,json=eventsMemoryOverflow" json:"events_memory_overflow,omitempty"`
	XXX_unrecognized     []byte  `json:"-"`
}

func (m *SensTestEraTests) Reset()                    { *m = SensTestEraTests{} }
func (m *SensTestEraTests) String() string            { return proto.CompactTextString(m) }
func (*SensTestEraTests) ProtoMessage()               {}
func (*SensTestEraTests) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }

func (m *SensTestEraTests) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensTestEraTests) GetMicConFailure() bool {
	if m != nil && m.MicConFailure != nil {
		return *m.MicConFailure
	}
	return false
}

func (m *SensTestEraTests) GetMicFailure() bool {
	if m != nil && m.MicFailure != nil {
		return *m.MicFailure
	}
	return false
}

func (m *SensTestEraTests) GetIgnitionFailure() bool {
	if m != nil && m.IgnitionFailure != nil {
		return *m.IgnitionFailure
	}
	return false
}

func (m *SensTestEraTests) GetUimFailure() bool {
	if m != nil && m.UimFailure != nil {
		return *m.UimFailure
	}
	return false
}

func (m *SensTestEraTests) GetBatFailure() bool {
	if m != nil && m.BatFailure != nil {
		return *m.BatFailure
	}
	return false
}

func (m *SensTestEraTests) GetBatVoltLow() bool {
	if m != nil && m.BatVoltLow != nil {
		return *m.BatVoltLow
	}
	return false
}

func (m *SensTestEraTests) GetCrashSensFailure() bool {
	if m != nil && m.CrashSensFailure != nil {
		return *m.CrashSensFailure
	}
	return false
}

func (m *SensTestEraTests) GetRaimProblem() bool {
	if m != nil && m.RaimProblem != nil {
		return *m.RaimProblem
	}
	return false
}

func (m *SensTestEraTests) GetGnssAntennaFailure() bool {
	if m != nil && m.GnssAntennaFailure != nil {
		return *m.GnssAntennaFailure
	}
	return false
}

func (m *SensTestEraTests) GetEventsMemoryOverflow() bool {
	if m != nil && m.EventsMemoryOverflow != nil {
		return *m.EventsMemoryOverflow
	}
	return false
}

// Статистика трэкера
type SensTrackerInfo struct {
	SensNum          *uint32 `protobuf:"varint,1,opt,name=sens_num,json=sensNum" json:"sens_num,omitempty"`
	CntAck           *uint32 `protobuf:"varint,2,opt,name=cnt_ack,json=cntAck" json:"cnt_ack,omitempty"`
	CntAckRealtime   *uint32 `protobuf:"varint,3,opt,name=cnt_ack_realtime,json=cntAckRealtime" json:"cnt_ack_realtime,omitempty"`
	CntNoack         *uint32 `protobuf:"varint,4,opt,name=cnt_noack,json=cntNoack" json:"cnt_noack,omitempty"`
	CntConnect       *uint32 `protobuf:"varint,5,opt,name=cnt_connect,json=cntConnect" json:"cnt_connect,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *SensTrackerInfo) Reset()                    { *m = SensTrackerInfo{} }
func (m *SensTrackerInfo) String() string            { return proto.CompactTextString(m) }
func (*SensTrackerInfo) ProtoMessage()               {}
func (*SensTrackerInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }

func (m *SensTrackerInfo) GetSensNum() uint32 {
	if m != nil && m.SensNum != nil {
		return *m.SensNum
	}
	return 0
}

func (m *SensTrackerInfo) GetCntAck() uint32 {
	if m != nil && m.CntAck != nil {
		return *m.CntAck
	}
	return 0
}

func (m *SensTrackerInfo) GetCntAckRealtime() uint32 {
	if m != nil && m.CntAckRealtime != nil {
		return *m.CntAckRealtime
	}
	return 0
}

func (m *SensTrackerInfo) GetCntNoack() uint32 {
	if m != nil && m.CntNoack != nil {
		return *m.CntNoack
	}
	return 0
}

func (m *SensTrackerInfo) GetCntConnect() uint32 {
	if m != nil && m.CntConnect != nil {
		return *m.CntConnect
	}
	return 0
}

func init() {
	proto.RegisterType((*StorageRecord)(nil), "nv.storage_record")
	proto.RegisterType((*SensAccelerometerData)(nil), "nv.sens_accelerometer_data")
	proto.RegisterType((*SensAinAinValue)(nil), "nv.sens_ain_ain_value")
	proto.RegisterType((*SensBufferData)(nil), "nv.sens_buffer_data")
	proto.RegisterType((*SensButtonPressCounter)(nil), "nv.sens_button_press_counter")
	proto.RegisterType((*SensCanLogData)(nil), "nv.sens_can_log_data")
	proto.RegisterType((*SensCanLogTmpDataExt)(nil), "nv.sens_can_log_tmp_data_ext")
	proto.RegisterType((*SensCounterCount)(nil), "nv.sens_counter_count")
	proto.RegisterType((*SensCrashData)(nil), "nv.sens_crash_data")
	proto.RegisterType((*SensDinsFlags)(nil), "nv.sens_dins_flags")
	proto.RegisterType((*SensDoutsFlags)(nil), "nv.sens_douts_flags")
	proto.RegisterType((*SensFmeterFrequency)(nil), "nv.sens_fmeter_frequency")
	proto.RegisterType((*SensFuelLevel)(nil), "nv.sens_fuel_level")
	proto.RegisterType((*SensGsmCellMonotoringCellMonitoring)(nil), "nv.sens_gsm_cell_monotoring_cell_monitoring")
	proto.RegisterType((*SensNdNavData)(nil), "nv.sens_nd_nav_data")
	proto.RegisterType((*SensStorInfo)(nil), "nv.sens_stor_info")
	proto.RegisterType((*SensTermoData)(nil), "nv.sens_termo_data")
	proto.RegisterType((*SensTestEraTests)(nil), "nv.sens_test_era_tests")
	proto.RegisterType((*SensTrackerInfo)(nil), "nv.sens_tracker_info")
	proto.RegisterEnum("nv.StorageRecordReason", StorageRecordReason_name, StorageRecordReason_value)
}

func init() { proto.RegisterFile("egts_sr_egtsplus_data.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 2213 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xdd, 0x6e, 0xe3, 0xc6,
	0x15, 0x86, 0xfc, 0x2b, 0x8f, 0x25, 0x9b, 0x1e, 0xff, 0x2c, 0x37, 0x9b, 0x34, 0x8e, 0xd2, 0x06,
	0x6e, 0x91, 0x2e, 0x9a, 0x4d, 0x02, 0x14, 0x28, 0x9a, 0x96, 0x2b, 0xd1, 0xb2, 0x0a, 0x9b, 0x72,
	0x86, 0xb4, 0x37, 0xbd, 0xe9, 0x94, 0xa6, 0x46, 0x5a, 0xa2, 0xe4, 0x50, 0x25, 0x87, 0x8a, 0xb7,
	0xb7, 0x45, 0xdf, 0xa0, 0xe8, 0x43, 0xf4, 0xa6, 0xb7, 0xbd, 0xe8, 0x4d, 0xef, 0xfb, 0x1a, 0x7d,
	0x8f, 0xe2, 0x9c, 0x19, 0x52, 0x8a, 0xe5, 0x68, 0x13, 0xa0, 0x17, 0x82, 0x78, 0xbe, 0xf3, 0xcd,
	0x37, 0x67, 0xce, 0x1c, 0x9e, 0x19, 0x92, 0x67, 0x62, 0xa2, 0x0a, 0x5e, 0xe4, 0x1c, 0xfe, 0xa7,
	0x49, 0x59, 0xf0, 0x51, 0xa8, 0xc2, 0xe7, 0xd3, 0x3c, 0x53, 0x19, 0x5d, 0x93, 0xb3, 0xce, 0x5f,
	0x0e, 0xc8, 0x5e, 0xa1, 0xb2, 0x3c, 0x9c, 0x08, 0x9e, 0x8b, 0x28, 0xcb, 0x47, 0xf4, 0x43, 0xd2,
	0xd6, 0x4f, 0x5c, 0x96, 0xe9, 0x9d, 0xc8, 0xed, 0xc6, 0xe9, 0xda, 0x59, 0x9b, 0xb5, 0x34, 0xe8,
	0x21, 0x46, 0xdf, 0x23, 0x44, 0xc5, 0xa9, 0xe0, 0x85, 0x0a, 0xd3, 0xa9, 0xbd, 0x76, 0xba, 0x76,
	0xb6, 0xcd, 0x76, 0x00, 0xf1, 0x01, 0xa0, 0x5f, 0xd4, 0x1a, 0xb9, 0x08, 0x8b, 0x4c, 0xda, 0xeb,
	0xa7, 0xeb, 0x67, 0x7b, 0x2f, 0x9e, 0x3e, 0x97, 0xb3, 0xe7, 0xdf, 0x9c, 0xee, 0xb9, 0x26, 0x54,
	0xf2, 0x0c, 0x2d, 0xfa, 0x01, 0x69, 0x15, 0x2a, 0x54, 0x65, 0xc1, 0xc7, 0x49, 0x38, 0x29, 0xec,
	0x0d, 0x9c, 0x60, 0x57, 0x63, 0xe7, 0x00, 0x51, 0x9f, 0x3c, 0x29, 0x84, 0x2c, 0x78, 0x18, 0x45,
	0x22, 0x11, 0x79, 0x96, 0x0a, 0x25, 0x72, 0x5c, 0x9e, 0x4d, 0x4f, 0xd7, 0xcf, 0x76, 0x5f, 0x3c,
	0xc3, 0xc9, 0x1e, 0xa7, 0xb0, 0x63, 0x70, 0x38, 0x8b, 0x78, 0x2f, 0x54, 0x21, 0xed, 0x12, 0xaa,
	0x47, 0xc4, 0x12, 0x7f, 0xb3, 0x30, 0x29, 0x85, 0xbd, 0x83, 0x7a, 0x27, 0x73, 0xbd, 0x45, 0x2f,
	0xdb, 0x47, 0xa9, 0x58, 0x3a, 0xb1, 0xbc, 0x05, 0x80, 0x7e, 0x41, 0x2c, 0xa4, 0xdd, 0x95, 0xe3,
	0x71, 0x15, 0xd2, 0x11, 0x4a, 0x1c, 0xd5, 0x12, 0x0b, 0x3e, 0xb6, 0x07, 0xc8, 0x4b, 0x04, 0x30,
	0x88, 0xaf, 0xc8, 0x53, 0xc3, 0x51, 0x2a, 0x93, 0x7c, 0x9a, 0x8b, 0xa2, 0xe0, 0x51, 0x56, 0x4a,
	0x25, 0x72, 0x7b, 0x0f, 0x85, 0xde, 0x5b, 0x10, 0x5a, 0x26, 0xb1, 0x13, 0xad, 0x08, 0x9e, 0x6b,
	0x70, 0x74, 0x35, 0x4e, 0x7f, 0x4d, 0x0e, 0x70, 0x50, 0x14, 0x4a, 0x9e, 0x64, 0x13, 0x1d, 0x9a,
	0x85, 0x8a, 0xc7, 0xb5, 0xe2, 0xa2, 0x53, 0xc7, 0xd6, 0x0d, 0xe5, 0x65, 0x36, 0xc1, 0xd8, 0x6e,
	0x4d, 0x6c, 0x15, 0x49, 0xa5, 0x53, 0x24, 0x72, 0x71, 0xaf, 0xec, 0x83, 0x07, 0xb1, 0x3d, 0x46,
	0x62, 0x47, 0x73, 0xc5, 0x20, 0x9d, 0x82, 0xa8, 0x7b, 0xaf, 0x68, 0xcf, 0x24, 0xde, 0xac, 0x40,
	0xff, 0xdb, 0xbb, 0x0f, 0x12, 0xff, 0x0d, 0x2f, 0xc3, 0x2c, 0x9b, 0xa5, 0xe1, 0x1f, 0xfd, 0x05,
	0xd9, 0xd7, 0xbc, 0x3c, 0x2c, 0x5e, 0xeb, 0xd5, 0xd9, 0x28, 0x71, 0x38, 0x97, 0xa8, 0x5d, 0xac,
	0x8d, 0xe3, 0xc1, 0xc6, 0xa5, 0x55, 0x83, 0x47, 0xb1, 0xac, 0xca, 0x8e, 0x3c, 0x18, 0x3c, 0x77,
	0xe9, 0xc1, 0xbd, 0x58, 0x9a, 0x6a, 0xac, 0xf6, 0x7c, 0x94, 0x95, 0xaa, 0x1a, 0x7d, 0xf8, 0x60,
	0xcf, 0x17, 0x7c, 0x3a, 0xaf, 0x3d, 0x00, 0xf4, 0xf8, 0x2b, 0x82, 0x15, 0xc9, 0xc7, 0xba, 0x46,
	0xc7, 0xb9, 0xf8, 0x63, 0x29, 0x64, 0xf4, 0xc6, 0x6e, 0xa1, 0xc8, 0xd3, 0x5a, 0xe4, 0x21, 0x81,
	0x1d, 0x02, 0x7c, 0x8e, 0xe8, 0x79, 0x05, 0xd6, 0x6b, 0x19, 0x97, 0x22, 0xe1, 0x89, 0x98, 0x89,
	0xc4, 0x6e, 0x3e, 0x58, 0xcb, 0xdc, 0xa5, 0xd7, 0x72, 0x5e, 0x8a, 0xe4, 0x12, 0x4c, 0xfa, 0xe7,
	0x06, 0x39, 0x43, 0xca, 0xa4, 0x48, 0x79, 0x24, 0x92, 0x84, 0xa7, 0x99, 0xcc, 0x54, 0x96, 0xc7,
	0x72, 0x52, 0xdb, 0xb1, 0xb6, 0xed, 0x36, 0xca, 0x7e, 0x5c, 0xcb, 0x7e, 0x87, 0x31, 0xec, 0x43,
	0x60, 0xf6, 0x8b, 0xb4, 0x2b, 0x92, 0xe4, 0xaa, 0xa6, 0x19, 0xcb, 0x90, 0xe8, 0x2f, 0x4d, 0x46,
	0xe5, 0x88, 0xcb, 0x70, 0xa6, 0x37, 0x73, 0xfb, 0x41, 0x46, 0x17, 0x7c, 0x7a, 0x11, 0xde, 0xc8,
	0x0b, 0x67, 0xb8, 0x9b, 0x3f, 0x27, 0x98, 0x62, 0x0e, 0xdd, 0x86, 0xc7, 0x72, 0x9c, 0xd9, 0xc7,
	0x38, 0x98, 0xd6, 0x83, 0x6b, 0x0f, 0x6b, 0x81, 0xed, 0xab, 0x2c, 0x1f, 0xc8, 0x71, 0x56, 0xe7,
	0x4e, 0x89, 0x3c, 0xcd, 0xf4, 0xbc, 0xfb, 0x0f, 0x72, 0x37, 0x77, 0xe9, 0x69, 0x03, 0xb0, 0x71,
	0xda, 0x73, 0x72, 0x68, 0x18, 0x85, 0xe2, 0x22, 0x0f, 0xf1, 0xa1, 0xb0, 0x9f, 0xa0, 0xc0, 0x93,
	0x05, 0x81, 0x45, 0xb7, 0xae, 0xe4, 0x40, 0x14, 0xca, 0xcd, 0x43, 0xf8, 0x2b, 0xa8, 0x63, 0xde,
	0x54, 0x95, 0x87, 0xd1, 0x1f, 0x84, 0x59, 0xc1, 0xc9, 0x83, 0x37, 0x75, 0xd1, 0xa9, 0xdb, 0x50,
	0xa0, 0x11, 0x58, 0x47, 0xe7, 0xef, 0x9b, 0x64, 0x4b, 0x37, 0x57, 0x6a, 0x91, 0x56, 0xcf, 0xbd,
	0x1d, 0x74, 0x5d, 0xce, 0x5c, 0xdf, 0x0d, 0xac, 0x06, 0xa5, 0x64, 0xef, 0x9a, 0x0d, 0xcf, 0x07,
	0x97, 0x2e, 0xef, 0x5e, 0x38, 0x5e, 0xdf, 0xb5, 0xd6, 0xe8, 0x3e, 0xd9, 0x1d, 0xf4, 0xbd, 0x41,
	0x30, 0x18, 0x7a, 0x7c, 0xe8, 0x59, 0xeb, 0x30, 0x6c, 0x0e, 0x9c, 0x9f, 0x5b, 0x1b, 0x74, 0x8f,
	0x90, 0x80, 0x0d, 0xae, 0xf9, 0x4b, 0xb7, 0x3f, 0xf0, 0xac, 0x4d, 0xda, 0x22, 0x4d, 0xb4, 0x5d,
	0xaf, 0x67, 0x6d, 0xd1, 0x26, 0xd9, 0xf0, 0x83, 0xe1, 0xb5, 0xb5, 0x0d, 0x4f, 0x57, 0xc3, 0x5b,
	0xd7, 0x6a, 0x82, 0x46, 0x30, 0x7c, 0x35, 0xf0, 0xfa, 0x66, 0xcc, 0x0e, 0x6a, 0x68, 0x04, 0x46,
	0x11, 0xb4, 0x07, 0x57, 0x2e, 0xe3, 0x38, 0x62, 0x77, 0x6e, 0xa3, 0x56, 0x8b, 0xee, 0x90, 0x4d,
	0xc7, 0xeb, 0x5f, 0xba, 0x56, 0x1b, 0xa6, 0xeb, 0x0d, 0xfc, 0xc0, 0xf1, 0xba, 0xae, 0xb5, 0x07,
	0x44, 0x7f, 0xe8, 0xf3, 0x97, 0x37, 0x41, 0x30, 0xf4, 0xac, 0x7d, 0x58, 0x93, 0xef, 0x32, 0x5c,
	0xa6, 0xc1, 0x2c, 0x4a, 0xc8, 0x56, 0xe0, 0x5c, 0x5d, 0xbb, 0xcc, 0x3a, 0x00, 0xbf, 0xe3, 0x05,
	0xae, 0xe7, 0x39, 0xdc, 0x7f, 0x35, 0x08, 0xba, 0x17, 0x16, 0x05, 0xc5, 0xbe, 0x7f, 0xc5, 0x2f,
	0x87, 0x7e, 0x60, 0x1d, 0xd2, 0x03, 0xd2, 0x06, 0x8b, 0xb9, 0xdd, 0xa1, 0xe7, 0xb9, 0xdd, 0xc0,
	0x3a, 0xa2, 0x6d, 0xb2, 0xd3, 0xf7, 0x7c, 0x5f, 0x33, 0x8e, 0xe9, 0x31, 0x39, 0x40, 0x93, 0xb9,
	0xce, 0x97, 0x37, 0x03, 0x1f, 0x73, 0x63, 0x9d, 0x40, 0x28, 0xbf, 0x71, 0xae, 0x20, 0xe8, 0xbe,
	0x7f, 0x65, 0x3d, 0x81, 0x54, 0x56, 0xb6, 0xe7, 0xfb, 0x96, 0x0d, 0x84, 0xe1, 0x2d, 0xac, 0xe9,
	0xda, 0x75, 0x7b, 0xd6, 0x53, 0x98, 0x17, 0x6d, 0x76, 0x7d, 0x65, 0xbd, 0x43, 0x8f, 0x88, 0x85,
	0x56, 0xe0, 0x42, 0xa8, 0x4e, 0x70, 0xc3, 0x5c, 0xeb, 0x19, 0xcc, 0xd5, 0x83, 0xad, 0x61, 0xc3,
	0x1b, 0x9f, 0xf7, 0xd8, 0xe0, 0x76, 0xe0, 0xf5, 0xad, 0x77, 0x61, 0xa8, 0xd3, 0xed, 0x0e, 0x7a,
	0xae, 0x17, 0x58, 0xef, 0x41, 0x7c, 0x30, 0x34, 0xb8, 0x60, 0xc3, 0x57, 0xd6, 0x0f, 0x70, 0x1e,
	0x8f, 0xbf, 0x74, 0x82, 0xc0, 0x65, 0xbf, 0xb5, 0xde, 0x07, 0x0d, 0x63, 0xf0, 0xde, 0xc0, 0xef,
	0x5e, 0x38, 0xac, 0xef, 0x5a, 0xa7, 0xb0, 0x50, 0xe6, 0xf4, 0x06, 0x43, 0x1e, 0x38, 0x7d, 0xce,
	0xdc, 0xbe, 0xf5, 0x01, 0x3d, 0x24, 0xfb, 0x73, 0xe8, 0xc6, 0x03, 0xb0, 0x43, 0xdf, 0x21, 0x27,
	0xb0, 0x2b, 0xfc, 0xd5, 0x20, 0xb8, 0x18, 0xde, 0x04, 0xbc, 0x66, 0x58, 0x1f, 0x42, 0x3a, 0xdd,
	0xee, 0x0d, 0x77, 0x19, 0x1b, 0x32, 0xde, 0x1d, 0xf6, 0x5c, 0xeb, 0x87, 0xb0, 0x10, 0xf7, 0xab,
	0xc0, 0x65, 0x9e, 0x73, 0xc9, 0x99, 0xfb, 0xe5, 0x8d, 0xeb, 0x07, 0xd6, 0x8f, 0x20, 0x1b, 0xa6,
	0xfc, 0x02, 0x00, 0x3e, 0x82, 0xa2, 0x18, 0x06, 0x17, 0xb0, 0x7c, 0xd7, 0xf1, 0x87, 0x9e, 0x15,
	0x75, 0xfe, 0xd9, 0xf8, 0xd6, 0xe3, 0x9c, 0x3e, 0x25, 0x4d, 0xfd, 0xb6, 0x97, 0xa9, 0xdd, 0x38,
	0x6d, 0x9c, 0xb5, 0xd9, 0x36, 0xbe, 0xeb, 0x65, 0x4a, 0x2d, 0xb2, 0x7e, 0x57, 0x8e, 0xed, 0xb5,
	0xd3, 0xc6, 0x59, 0x8b, 0xc1, 0x23, 0x20, 0xa1, 0x4a, 0xed, 0x75, 0xe4, 0xc1, 0x23, 0x7d, 0x97,
	0xec, 0xcc, 0xdb, 0xe9, 0x06, 0xe2, 0x73, 0x80, 0x1e, 0x91, 0xcd, 0x3c, 0x94, 0x13, 0x61, 0x6f,
	0xa2, 0x47, 0x1b, 0xf4, 0x84, 0x6c, 0x8d, 0xb3, 0x3c, 0x0d, 0x95, 0xbd, 0x85, 0xb0, 0xb1, 0x28,
	0x25, 0x1b, 0x7f, 0x4a, 0xe2, 0x3b, 0x7b, 0x1b, 0x51, 0x7c, 0xee, 0xfc, 0xea, 0xb1, 0x3b, 0xc3,
	0xaa, 0xa0, 0xf7, 0xc8, 0x5a, 0x3a, 0xc3, 0x98, 0xdb, 0x6c, 0x2d, 0x9d, 0x75, 0x7e, 0xb7, 0x7c,
	0x5f, 0x58, 0x35, 0x9c, 0x92, 0x0d, 0x6c, 0x4a, 0x7a, 0xd1, 0xf8, 0x4c, 0x9f, 0x91, 0x9d, 0xb8,
	0xe0, 0x53, 0x78, 0xf9, 0x47, 0xb8, 0xf6, 0x26, 0x6b, 0xc6, 0xc5, 0x35, 0xda, 0x9d, 0xcb, 0x15,
	0xf7, 0x89, 0x55, 0x13, 0x1d, 0x91, 0x4d, 0xb8, 0x70, 0x09, 0x9c, 0xa9, 0xc9, 0xb4, 0xd1, 0xf9,
	0xcf, 0xc6, 0x23, 0x97, 0x88, 0x55, 0x32, 0xcf, 0xc9, 0x21, 0x9c, 0x79, 0xbc, 0x10, 0x51, 0x99,
	0xc7, 0xea, 0x0d, 0x9f, 0x8b, 0xb6, 0xd9, 0x01, 0xb8, 0x7c, 0xe3, 0xf1, 0xc1, 0x01, 0x57, 0x4b,
	0xe4, 0x87, 0x49, 0x98, 0x57, 0x1b, 0xb9, 0x03, 0x88, 0x03, 0x00, 0xfd, 0x88, 0xec, 0x0b, 0x39,
	0x89, 0xa5, 0xe0, 0x78, 0x01, 0x0d, 0x93, 0xc4, 0x6c, 0x6a, 0x5b, 0xc3, 0x41, 0x9c, 0x0a, 0x27,
	0x49, 0xe8, 0x4f, 0xc8, 0x41, 0xc5, 0x2b, 0x73, 0xc9, 0x8b, 0xa9, 0x10, 0x23, 0xb3, 0xc9, 0x46,
	0x20, 0x28, 0x73, 0xe9, 0x03, 0x4c, 0x7f, 0x4a, 0x68, 0xc5, 0x15, 0xe9, 0x54, 0xe4, 0xa1, 0x2a,
	0x73, 0x81, 0x5b, 0x7f, 0xc0, 0x8c, 0x4a, 0x30, 0x77, 0xd0, 0x9f, 0x91, 0x23, 0x3c, 0x3d, 0xa3,
	0x4c, 0x16, 0x65, 0x3a, 0x55, 0x71, 0x26, 0x31, 0x0e, 0x5d, 0x15, 0x14, 0x7c, 0xdd, 0xb9, 0x0b,
	0x82, 0x81, 0x35, 0x2d, 0x1e, 0xc5, 0x7a, 0x4d, 0xf5, 0x89, 0xfb, 0x8c, 0xec, 0x60, 0x2f, 0x47,
	0x95, 0x1d, 0xf4, 0x36, 0x11, 0x80, 0xb1, 0xb0, 0x0d, 0x18, 0x3c, 0xd1, 0x15, 0x8a, 0x06, 0xa4,
	0x01, 0x37, 0xb2, 0xcc, 0x05, 0x0f, 0xef, 0xe3, 0x82, 0x7f, 0x62, 0xef, 0xea, 0x34, 0x54, 0xb0,
	0x73, 0x1f, 0x17, 0x9f, 0x2c, 0xf3, 0x5e, 0xd8, 0xad, 0x65, 0xde, 0x8b, 0x65, 0xde, 0xa7, 0x76,
	0x7b, 0x99, 0xf7, 0xe9, 0x32, 0xef, 0x33, 0x7b, 0x6f, 0x99, 0xf7, 0xd9, 0x32, 0xef, 0x73, 0x7b,
	0x7f, 0x99, 0xf7, 0x79, 0x27, 0x5f, 0x71, 0xa1, 0x5c, 0x55, 0x55, 0xa6, 0x4a, 0x0a, 0xfe, 0x3a,
	0x9e, 0xbc, 0x36, 0xc5, 0x84, 0x55, 0x52, 0x5c, 0xc4, 0x93, 0xd7, 0x90, 0x51, 0xed, 0x4e, 0xb2,
	0xaf, 0x4d, 0x0d, 0x35, 0x11, 0xb8, 0xcc, 0xbe, 0xee, 0xb8, 0x8f, 0x5d, 0x36, 0xdf, 0xf2, 0x26,
	0xe8, 0x2f, 0x01, 0x3d, 0x8f, 0x36, 0x3a, 0xf1, 0xd2, 0x6d, 0x73, 0x95, 0xc6, 0x09, 0xd9, 0x12,
	0x52, 0xe4, 0x93, 0x37, 0x46, 0xc4, 0x58, 0xf0, 0xb9, 0x15, 0x17, 0x3c, 0x9b, 0x89, 0x1c, 0xea,
	0xb4, 0x7e, 0x7d, 0x5b, 0x71, 0x31, 0xac, 0xb1, 0xce, 0xef, 0x97, 0xee, 0xa6, 0x6f, 0x99, 0x6a,
	0x24, 0x66, 0x71, 0x54, 0xc5, 0x6b, 0x2c, 0xfa, 0x0e, 0x69, 0x8a, 0x7b, 0x25, 0x72, 0x19, 0x26,
	0x55, 0x4e, 0x2a, 0xbb, 0x13, 0x2e, 0x5f, 0x60, 0xff, 0xdf, 0x53, 0x5c, 0x7c, 0xcb, 0x1d, 0xf7,
	0xfb, 0x67, 0xfe, 0x6f, 0x8d, 0xa5, 0xfb, 0xed, 0x77, 0x16, 0x59, 0x33, 0x22, 0xd4, 0x26, 0xdb,
	0xd3, 0x30, 0xcf, 0x33, 0x55, 0x98, 0x48, 0x2b, 0x13, 0x3a, 0x6c, 0x29, 0x63, 0x65, 0xfa, 0x0a,
	0x3e, 0xd3, 0x16, 0x69, 0x28, 0xd3, 0x3e, 0x1a, 0x0a, 0x96, 0xaf, 0xbf, 0x45, 0xab, 0xf3, 0x41,
	0x5b, 0x9d, 0x7f, 0x7d, 0x8f, 0xab, 0xf3, 0x5b, 0xce, 0xb5, 0x24, 0x8c, 0x30, 0x80, 0x16, 0x83,
	0x47, 0x40, 0xa2, 0x58, 0x37, 0xb0, 0x16, 0x83, 0x47, 0x88, 0x32, 0x2f, 0x8a, 0x18, 0x23, 0x68,
	0x31, 0x7c, 0x06, 0x49, 0xdd, 0x15, 0x47, 0x33, 0xec, 0x46, 0x2d, 0xb6, 0x0d, 0xb6, 0x33, 0x9a,
	0x81, 0x40, 0x1a, 0x45, 0x26, 0x8f, 0xf0, 0x88, 0x88, 0x8c, 0xaa, 0xa3, 0x32, 0x95, 0x51, 0xe7,
	0xaf, 0x6b, 0xcb, 0x97, 0xee, 0x55, 0x61, 0xbe, 0x4b, 0x76, 0x92, 0x4c, 0x4e, 0x62, 0x55, 0x8e,
	0x74, 0x72, 0xf7, 0xd9, 0x1c, 0x80, 0x5a, 0x48, 0x42, 0xa5, 0x9d, 0xeb, 0xe8, 0xac, 0x6d, 0xf0,
	0x85, 0x89, 0xf1, 0xe9, 0x34, 0xd7, 0xf6, 0xbc, 0xe1, 0x6d, 0x2e, 0x36, 0xbc, 0x13, 0xb2, 0x15,
	0x65, 0x65, 0x5e, 0x88, 0x2a, 0xe5, 0xda, 0x82, 0x37, 0xbd, 0x08, 0x95, 0xf9, 0x60, 0xd4, 0x1d,
	0xb8, 0x59, 0x84, 0x4a, 0x7f, 0x10, 0x52, 0xb2, 0x31, 0x1d, 0x65, 0x53, 0xd3, 0x71, 0xf1, 0x19,
	0xe4, 0xb1, 0xb7, 0x9a, 0x46, 0xab, 0x0d, 0x08, 0x28, 0x1b, 0xe9, 0x5b, 0x87, 0x69, 0xb4, 0xb5,
	0xdd, 0xf9, 0x6f, 0xe3, 0xe1, 0xc7, 0xc4, 0xaa, 0xa4, 0x1c, 0x93, 0xad, 0x78, 0xc4, 0xd3, 0xf0,
	0xbe, 0xaa, 0xd9, 0x78, 0x74, 0x15, 0xde, 0x57, 0x70, 0x2c, 0x4d, 0xc2, 0x01, 0x8e, 0x25, 0xb6,
	0xfe, 0x94, 0x67, 0xc9, 0x48, 0x14, 0x55, 0xc1, 0x35, 0x55, 0x3a, 0x44, 0x1b, 0x9a, 0x68, 0xed,
	0xe4, 0xa5, 0x84, 0xa0, 0x75, 0x4e, 0xda, 0x15, 0xe5, 0x06, 0x40, 0x10, 0x89, 0x64, 0xc5, 0xd0,
	0xe9, 0x69, 0x46, 0xd2, 0x38, 0xcf, 0x88, 0x55, 0x3b, 0x79, 0x92, 0x15, 0x4a, 0x8c, 0x4c, 0x9e,
	0xf6, 0x2a, 0xce, 0x25, 0xa2, 0x9d, 0xf1, 0xd2, 0x97, 0xcf, 0x5b, 0x5a, 0x80, 0x79, 0x07, 0xd6,
	0x16, 0xdf, 0x01, 0x7a, 0x4a, 0x76, 0x17, 0x4f, 0xd1, 0x75, 0x3c, 0x45, 0x17, 0xa1, 0xce, 0xbf,
	0xd7, 0x1f, 0xfd, 0x4a, 0x5a, 0x35, 0xd9, 0x47, 0x64, 0x3f, 0x8d, 0x23, 0x38, 0x71, 0xf9, 0x38,
	0x8c, 0x13, 0x10, 0xd6, 0xb7, 0x92, 0x76, 0x1a, 0x47, 0xdd, 0x4c, 0x9e, 0x6b, 0x90, 0xbe, 0x4f,
	0x76, 0x81, 0x57, 0x71, 0x74, 0x2f, 0x25, 0x69, 0x1c, 0x55, 0x84, 0x1f, 0x13, 0x2b, 0x9e, 0xc8,
	0x18, 0xcf, 0xec, 0x8a, 0xb5, 0x81, 0xac, 0xfd, 0x0a, 0x5f, 0xd0, 0x2a, 0xe3, 0xb4, 0x66, 0x6d,
	0x6a, 0xad, 0x32, 0x4e, 0x17, 0x08, 0x77, 0xa1, 0xaa, 0x09, 0x5b, 0x9a, 0x70, 0x17, 0xaa, 0x8a,
	0x70, 0x4a, 0x5a, 0x40, 0x98, 0x65, 0x89, 0xc2, 0x83, 0x68, 0xbb, 0x66, 0xdc, 0x66, 0x89, 0xba,
	0xcc, 0xbe, 0xa6, 0x1f, 0x13, 0xaa, 0x8f, 0x0f, 0xdd, 0xce, 0x8c, 0x52, 0x13, 0x79, 0x16, 0x7a,
	0x7c, 0xf8, 0x36, 0x37, 0x7a, 0x1f, 0x90, 0x56, 0x1e, 0xc6, 0x29, 0x9f, 0xe6, 0xd9, 0x5d, 0x22,
	0x52, 0xac, 0xe0, 0x26, 0xdb, 0x05, 0xec, 0x5a, 0x43, 0x70, 0x37, 0x99, 0xc8, 0xa2, 0xe0, 0xa1,
	0x54, 0x42, 0xca, 0xb0, 0x96, 0x24, 0x48, 0xa5, 0xe0, 0x73, 0xb4, 0xab, 0x12, 0xfd, 0x8c, 0x9c,
	0x88, 0x99, 0x90, 0xaa, 0xe0, 0xa9, 0x48, 0xb3, 0xfc, 0x0d, 0x9e, 0x45, 0x63, 0x08, 0x77, 0x17,
	0xc7, 0x1c, 0x69, 0xef, 0x15, 0x3a, 0x87, 0xc6, 0xd7, 0xf9, 0x47, 0xe3, 0x91, 0x2f, 0xd4, 0x55,
	0x3b, 0xf8, 0x84, 0x6c, 0x43, 0x19, 0x42, 0x85, 0x9a, 0x7a, 0x89, 0xa4, 0x72, 0xe6, 0xf5, 0x09,
	0xd5, 0x99, 0x0b, 0x68, 0x02, 0xa9, 0x30, 0xaf, 0xc8, 0x9e, 0x66, 0x30, 0x83, 0x56, 0x65, 0x2e,
	0x33, 0x10, 0xd9, 0xa8, 0xcb, 0xdc, 0x03, 0x1b, 0x36, 0x03, 0x9c, 0x51, 0x26, 0xa5, 0x88, 0xaa,
	0x56, 0x4d, 0x22, 0xa9, 0xba, 0x1a, 0xf9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xad, 0x0e, 0xcd,
	0xc4, 0x0c, 0x15, 0x00, 0x00,
}
